package com.zusmart.base.network.handler;

import java.io.IOException;

import com.zusmart.base.buffer.Buffer;
import com.zusmart.base.handler.Handler;
import com.zusmart.base.network.ChannelContext;
import com.zusmart.base.network.message.Message;

public interface ChannelContextHandler extends Handler {

	public void onRegister(ChannelContext channelContext, ChannelContextHandlerContext handlerContext);

	public void unRegister(ChannelContext channelContext, ChannelContextHandlerContext handlerContext);

	public void onMessage(ChannelContext channelContext, ChannelContextHandlerContext handlerContext, Message message);

	public void onException(ChannelContext channelContext, ChannelContextHandlerContext handlerContext, Throwable cause);

	public void onTimeout(ChannelContext channelContext, ChannelContextHandlerContext handlerContext);
	
	public void onReader(ChannelContext channelContext, ChannelContextHandlerContext handlerContext, Buffer buffer) throws IOException;

}